home *** CD-ROM | disk | FTP | other *** search
/ HamCall (October 1991) / HamCall (Whitehall Publishing)(1991).bin / bcast / miscbcst / tvfrmt.bas < prev    next >
BASIC Source File  |  1990-10-14  |  3KB  |  68 lines

  1. TVFRMT.BAS
  2. 1 REM TV script formatter for M100
  3. 2 REM Wally Hubbard 70346,1716
  4. 3 REM SP$ sets left column width
  5. 4 REM F1$ sets printer to wide chars
  6. 5 REM F2$ sets printer to normal chars
  7. 6 REM LW sets right column width
  8. 7 REM output (lpt:) is set in line 50
  9. 10 CLEAR 4096,MAXRAM:MAXFILES=2:SN=60:DIM S$(SN)
  10. 12 SP$="\"+SPACE$(35)+"\":S$=" ":LW=20:ES$=CHR$(13)+" "+CHR$(9)
  11. 15 E$=CHR$(27):F1$=E$+CHR$(23)+E$+CHR$(14):F2$=E$+CHR$(19)+E$+CHR$(15)
  12. 17 CLS:PRINT "File Formatter"
  13. 20 LINE INPUT "File: ";IN$
  14. 30 IF NOT INSTR(1,IN$,".DO") THEN IN$=LEFT$(IN$,6)+".DO"
  15. 39 ON ERROR GOTO 42
  16. 40 OPEN IN$ FOR INPUT AS 1
  17. 41 GOTO 50
  18. 42 IF ERR=52 THEN PRINT "File not found":FILES:RESUME 20
  19. 43 IF ERR=55 THEN FILES:RESUME 20
  20. 50 ON ERROR GOTO 0:OPEN "lpt:" FOR OUTPUT AS 2
  21. 55 PRINT "Wait..."
  22. 60 GOSUB 4000:SI=1:SO=0
  23. 70 IF EOF(1) THEN Y=0:GOSUB 2025:S$="       -30-":GOSUB 2025:GOSUB 3000
  24. 71 IF EOF(1) THEN CLOSE:END:ELSE IF B$="" THEN A$=INPUT$(1,1) ELSE A$=B$:B$=""
  25. 72 IF A$=CHR$(13) OR A$=CHR$(9) THEN A$=" "
  26. 75 IF A$<" " GOTO 70
  27. 77 IF A$=" " THEN FLAG=1:GOTO 70
  28. 80 IF A$="<" THEN GOSUB 1000:GOTO 70
  29. 81 IF A$="[" AND S$<>"" THEN Y=0:GOSUB 2025:GOSUB 1000:GOTO 70
  30. 82 IF A$="[" AND S$="" THEN GOSUB 1000:GOTO 70
  31. 83 IF FLAG THEN FLAG=0:S$=S$+" "
  32. 84 IF A$>="a" AND A$<+"z" THEN A$=CHR$(ASC(A$)-32)
  33. 90 S$=S$+A$:IF LEN(S$)>LW THEN GOSUB 2000:GOTO 70
  34. 100 IF A$="."THEN B$=INPUT$(1,1):IF INSTR(1,ES$,B$)THEN Y=0:GOSUB 2025:S$="  "
  35. 110 GOTO 70
  36. 1000 REM read left column info
  37. 1010 IF EOF(1) THEN RETURN ELSE C$=INPUT$(1,1)
  38. 1012 IF C$=">" THEN SI=SI+1:IF SI>=SN THEN SI=0:RETURN ELSE RETURN
  39. 1015 IF C$="]" THEN SI=SI+1:IF SI>=SN THEN SI=0
  40. 1017 IF C$="]" THEN GOSUB 3000:RETURN
  41. 1020 IF C$=";" THEN SI=SI+1:IF SI>=SN THEN SI=0
  42. 1021 IF C$=CHR$(13) THEN SI=SI+1:C$=INPUT$(1,1):C$="":IF SI>=SN THEN SI=0
  43. 1025 IF C$="*" THEN S$(SI)=S$(SI)+STRING$(79-LEN(S$(SI)),C$):SI=SI+1
  44. 1027 IF C$="*" THEN IF SI>=SN THEN SI=0:GOTO 1010 ELSE 1010
  45. 1030 S$(SI)=S$(SI)+C$:GOTO 1010
  46. 2000 Y=0:FOR X=LEN(S$) TO 2 STEP -1:IF MID$(S$,X,1)=" " THEN Y=X:X=2
  47. 2010 NEXT
  48. 2020 IF Y>0 THEN PRINT #2, USING SP$;S$(SO);
  49. 2022 IF Y>0 THEN PRINT #2, F1$;LEFT$(S$,Y-1);F2$:S$=MID$(S$,Y+1)
  50. 2025 IF Y=0 THEN PRINT #2, USING SP$;S$(SO);
  51. 2027 IF Y=0 THEN PRINT #2, F1$;LEFT$(S$,30);F2$:S$=""
  52. 2030 S$(SO)="":IF SO<>SI THEN SO=SO+1:IF SO>=SN THEN SO=0
  53. 2035 PRINT #2, USING SP$;S$(SO)
  54. 2036 S$(SO)="":IF SO<>SI THEN SO=SO+1:IF SO>=SN THEN SO=0
  55. 2040 RETURN
  56. 3000 IF SO=SI THEN RETURN
  57. 3010 PRINT #2, S$(SO):SO=SO+1:IF SO>=SN THEN SO=0
  58. 3020 GOTO 3000
  59. 4000 IF EOF(1) THEN 5000
  60. 4010 A$=INPUT$(1,1):IF A$="<" OR A$="[" THEN GOSUB 4050:GOTO 4000
  61. 4020 IF A$>" " THEN N=N+1
  62. 4030 GOTO 4000
  63. 4050 IF EOF(1) THEN RETURN ELSE C$=INPUT$(1,1)
  64. 4060 IF C$=">" OR C$="]" THEN RETURN ELSE GOTO 4050
  65. 5000 CLOSE 1:OPEN IN$ FOR INPUT AS 1
  66. 5010 S$(0)="Words: "+STR$(INT(N/5+.5))+"  Copy Time: "+STR$(INT(N/15+.5))
  67. 5020 RETURN